

// 后端返回的数据类型  dataType  默认为json
// 前端携带的参数  data  默认为{}
const ajax = (type , dataType = 'json' , path , data = {} , successCB) => {

    // 把数据对象变成字符串  a=11&b=22
    let params = '' ;
    for(let key in data) {
        params += `${key}=${data[key]}&` ;
    }
    params = params.substring(0 , params.length - 1) ;
    console.log(params);

    const xhr = new XMLHttpRequest() ;

    // 判断数据请求的类型
    if(type.toLowerCase() === 'get') {
        xhr.open('get' , path + '?' + params , true) ;
        xhr.send();
    } else {
        xhr.open('post' , path , true) ;
        // 设置请求头
        xhr.setRequestHeader('content-type' ,'application/x-www-form-urlencoded');
        xhr.send(params) ;
    }

    
    xhr.onreadystatechange = function () {  
        if(xhr.readyState === 4 && xhr.status === 200) {
            let data = xhr.responseText ;
            if(dataType === 'json') {
                data = JSON.parse(data) ;
            }
            successCB(data) ;
        }
    }
}